﻿using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

namespace TodoList
{
    /*
     * TodoList v0.0.1 的 Model 定义
    - ⼀个 TodoList 有 若⼲个 TodoItem。
    - 每个 TodoItem 都有个标题。
    - 每个 TodoItem 可以设置完成/未完成。
    - TodoList 可以删除某个 TodoItem。
    - TodoList 可以增加 TodoItem。
    - TodoList 可以更新 TodoItem。
    - 使⽤ Model 完成以上的功能的描述。
     只有若⼲个脚本⽂件没有界⾯场景等
     */


    public class TodosList {
        public Action OnDataChanged = () => { };
        //public Action<TodoItem> OnOneDataChanged = (todo) => { };
        public Action<TodoItem> OnOneDataChanged;

        public List<TodoItem> todoList = new List<TodoItem>()
        {
            new TodoItem(){title = "第一个事项", complite = false},
            new TodoItem(){title = "第二个事项", complite = false},
            new TodoItem(){title = "第三个事项", complite = false}
        };


        public void AddTodoItem(TodoItem todo)
        {
            todoList.Add(todo);
            OnOneDataChanged(todo);
        }

        public void RemoveTodoItem(int i)
        {
            if (todoList.Count > i)
            {
                todoList.Remove(todoList[i]);
                OnDataChanged();
            }
            else
            {
                Debug.LogError("缺少数据");
            }

        }

        public void UpdateTodoItem(int i, TodoItem todo)
        {
            if (todoList.Count > i)
            {
                todoList[i] = todo;
                OnDataChanged();
            }
            else
            {
                Debug.LogError("数据出错");
            }

        }



    }
}
